package org.dtrd.modules.record.service;

import org.dtrd.modules.record.entity.bean.*;
import org.dtrd.modules.record.entity.po.DtrdEntRdSigninWaistline;

import java.util.List;

/**
 * @author 萧
 * @date:2021-08-22 3:28 下午
 **/
public interface IWaistlineRecordService extends IRecordService<DtrdEntRdSigninWaistline> {

    /**
     * 保存腰围记录
     */
    boolean saveWaistLineRecord(WaistLineBean waistLineBean);

    /**
     * 获取腰围曲线数据
     */
    WaistLineChart getWaistLineChart(int patientId, String startDate, String endDate);

    /**
     * 获取指定时间内的腰围打卡
     * @param patientId
     * @param startDate
     * @param endDate
     * @return
     */
    List<DtrdEntRdSigninWaistline> getPeriodWaistLine(Integer patientId, String startDate, String endDate);

    /**
     * 查询指定日期范围的的日期数量
     */
    Integer getFoodWaistLineDateCount(Integer patientId, String startDate, String endDate);

    /**
     * 查询指定日期范围内的每日记录
     */
    List<WaistDailyRecord> getWaistLineRecordByRange(Integer patientId, String startDate, String endDate, Integer page, Integer pageSize);

    /**
     * 获取腰围统计数据
     * @return
     */
    WaistLineStatistics getWaistLineStatistics(int patientId, String startDate, String endDate);

    /**
     * 计算时间段内腰围平均值
     * @param patientId
     * @param startDate
     * @param endDate
     * @return
     */
    AvgRecordBean getAvgValue(Integer patientId, String startDate, String endDate);

    Integer getAvgWaist(Integer patientId, String startOfWeek, String endOfWeek);

    DtrdEntRdSigninWaistline getWaistLineRecordLatestByPatientId(Integer patientId);

    /**
     * 获取最早记录的一条腰围数据
     * @param patientId
     * @return
     */
    Float getFirstWaistlineValue(Integer patientId);
}
